Nested Maps এবং Complex Data Structure তৈরি

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) MultiMap এবং MultiValueMap এর উন্নত ব্যবহার |
144
144

Apache Commons Collections লাইব্রেরি Java Collections Framework (JCF)-এর উপরে অতিরিক্ত ফিচার সরবরাহ করে, যার মধ্যে Nested Maps এবং Complex Data Structures তৈরি করার জন্য প্রয়োজনীয় সরঞ্জামও রয়েছে। Nested Maps হল এমন Map অবজেক্ট যা অন্যান্য Map অবজেক্ট ধারণ করে, যার মাধ্যমে ডেটাকে স্তরভিত্তিকভাবে সংরক্ষণ করা যায়।

এটি বিশেষভাবে উপকারী যখন আপনাকে ডেটা হায়ারার্কিকালভাবে সংরক্ষণ করতে হয়, যেমন database records, configuration settings, multi-level categories, বা এমন কোনো ডেটা যেখানে একাধিক স্তরের মান থাকতে পারে।

১. Nested Maps এর ধারণা

Nested Maps বা Map of Maps হল এমন একটি ডেটা স্ট্রাকচার যা একটি Map এর ভিতরে অন্য একটি Map রাখে। এটি সাধারণত ব্যবহার করা হয় যখন আপনার ডেটায় একাধিক স্তরের সম্পর্ক থাকে। উদাহরণস্বরূপ, আপনি যদি একটি department এবং তার মধ্যে থাকা employees সংরক্ষণ করতে চান, তাহলে একটি Map ব্যবহার করা যেতে পারে যার মধ্যে প্রতিটি department একটি সাব-ম্যাপ হিসেবে employee এর তথ্য ধারণ করবে।

২. Nested Maps তৈরি করা

Nested Map তৈরি করতে আপনি সাধারণ Map<String, Map<String, String>> স্ট্রাকচার ব্যবহার করতে পারেন, যেখানে প্রথম Map এর কী একটি department এবং তার মানটি একটি আরেকটি Map যা ওই department এর employees সংরক্ষণ করবে।

উদাহরণ: Nested Map তৈরি করা

import org.apache.commons.collections4.MapUtils;
import org.apache.commons.collections4.map.HashedMap;

import java.util.Map;

public class NestedMapExample {
    public static void main(String[] args) {
        // Creating the outer map (departments)
        Map<String, Map<String, String>> departmentMap = new HashedMap<>();

        // Creating the inner map (employees) for 'Sales' department
        Map<String, String> salesEmployees = new HashedMap<>();
        salesEmployees.put("E1", "John Doe");
        salesEmployees.put("E2", "Jane Smith");

        // Adding the 'Sales' department and its employees to the departmentMap
        departmentMap.put("Sales", salesEmployees);

        // Creating the inner map (employees) for 'HR' department
        Map<String, String> hrEmployees = new HashedMap<>();
        hrEmployees.put("E3", "Alice Johnson");
        hrEmployees.put("E4", "Bob Brown");

        // Adding the 'HR' department and its employees to the departmentMap
        departmentMap.put("HR", hrEmployees);

        // Printing the nested map (department -> employee)
        System.out.println(departmentMap);
    }
}

এখানে:

  • একটি departmentMap তৈরি করা হয়েছে, যার মধ্যে department (যেমন, Sales, HR) নামক key রয়েছে এবং তার মান হলো একটি অন্য Map যা সেই বিভাগের employees এর নাম সংরক্ষণ করে।

আউটপুট:

{Sales={E1=John Doe, E2=Jane Smith}, HR={E3=Alice Johnson, E4=Bob Brown}}

এটি একটি nested map যা ডেটাকে স্তরভিত্তিকভাবে (একটি department এবং তার employees) সংরক্ষণ করছে।

৩. Complex Data Structure তৈরি করা

Apache Commons Collections লাইব্রেরি ব্যবহার করে আপনি Complex Data Structures তৈরি করতে পারেন, যেখানে একাধিক স্তরের Map এবং List এর মিশ্রণ থাকতে পারে। এই ধরনের ডেটা স্ট্রাকচারগুলি ডেটার হায়ারার্কি সংরক্ষণ করতে সাহায্য করে এবং সাধারণত real-world applications-এ ব্যবহৃত হয়, যেমন configuration files, multi-level categories, বা nested records

উদাহরণ: Complex Data Structure (List of Maps) তৈরি করা

ধরা যাক, আপনি একটি course registration system তৈরি করছেন যেখানে প্রতিটি student এর name এবং তার enrolled courses থাকবে। প্রতিটি কোর্সের বিস্তারিত তথ্যও থাকতে পারে (যেমন কোর্সের নাম, কোড ইত্যাদি)। এ ক্ষেত্রে, List of Maps ব্যবহার করা যেতে পারে।

import org.apache.commons.collections4.map.HashedMap;

import java.util.List;
import java.util.Map;
import java.util.ArrayList;

public class ComplexDataStructureExample {
    public static void main(String[] args) {
        // Creating a list to store students
        List<Map<String, Object>> students = new ArrayList<>();

        // Creating a map for student 1
        Map<String, Object> student1 = new HashedMap<>();
        student1.put("name", "John Doe");
        
        // Creating courses for student 1
        Map<String, String> courses1 = new HashedMap<>();
        courses1.put("CS101", "Computer Science 101");
        courses1.put("MATH101", "Calculus I");
        
        student1.put("courses", courses1);

        // Adding student 1 to the student list
        students.add(student1);

        // Creating a map for student 2
        Map<String, Object> student2 = new HashedMap<>();
        student2.put("name", "Jane Smith");

        // Creating courses for student 2
        Map<String, String> courses2 = new HashedMap<>();
        courses2.put("BIO101", "Biology 101");
        courses2.put("CHEM101", "Chemistry I");
        
        student2.put("courses", courses2);

        // Adding student 2 to the student list
        students.add(student2);

        // Printing the complex data structure (List of Maps)
        System.out.println(students);
    }
}

এখানে:

  • students একটি List<Map<String, Object>> যা বিভিন্ন student এর ডেটা ধারণ করে। প্রতিটি ছাত্রের জন্য একটি Map তৈরি করা হয়েছে, যেখানে ছাত্রের নাম এবং তার কোর্সের তালিকা (যে কোর্সে সে নিবন্ধিত) সংরক্ষিত রয়েছে।
  • courses একটি Map যেখানে কোর্সের কোড এবং কোর্সের নাম রয়েছে।

আউটপুট:

[{name=John Doe, courses={CS101=Computer Science 101, MATH101=Calculus I}}, {name=Jane Smith, courses={BIO101=Biology 101, CHEM101=Chemistry I}}]

এটি একটি complex data structure তৈরি করেছে, যেখানে একটি List এর মধ্যে Map অবজেক্টগুলি আছে, প্রতিটি ছাত্রের জন্য তার নাম এবং কোর্সের তালিকা সংরক্ষিত আছে।

৪. Nested Maps এবং Complex Structures এর সুবিধা

  1. হায়ারার্কিক্যাল ডেটা সংগঠন: Nested Maps ডেটাকে স্তরভিত্তিকভাবে সংরক্ষণ করতে সহায়তা করে, যা কিছু ক্ষেত্রে যেমন কনফিগারেশন ফাইল বা ডেটাবেস রেকর্ডের মতো কাঠামোর জন্য উপকারী।
  2. ফ্লেক্সিবল এবং শক্তিশালী ডেটা ম্যানিপুলেশন: আপনি nested maps এবং complex structures ব্যবহার করে ডেটার ভিতরে বিভিন্ন স্তরের তথ্য ম্যানিপুলেট করতে পারেন।
  3. সহজ এবং স্পষ্ট কন্টেক্সট: ডেটা সংরক্ষণ করা যখন হায়ারার্কিক্যালভাবে হয়, তখন তা বুঝতে এবং পরিচালনা করতে অনেক সহজ হয়, যেমন employee -> department বা student -> courses

সারাংশ

Apache Commons Collections লাইব্রেরি nested maps এবং complex data structures তৈরি করার জন্য শক্তিশালী এবং নমনীয় সমাধান প্রদান করে। Nested Maps হল এমন Map যা অন্য Map ধারণ করে, এবং এটি একটি ডেটা স্ট্রাকচার যা স্তরভিত্তিকভাবে ডেটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এছাড়াও, complex data structures তৈরি করতে List of Maps এর মতো কৌশল ব্যবহার করা যেতে পারে, যেখানে একাধিক Map একসাথে কাজ করে। এই ধরনের ডেটা স্ট্রাকচারগুলি real-world applications এর জন্য খুবই উপকারী, যেখানে ডেটার মধ্যে বিভিন্ন স্তরের সম্পর্ক থাকে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion